
package com.jumei.flume.processor;

import com.jumei.flume.bo.SensorMessage;
import com.jumei.flume.parser.Context;

public interface Processor {
    SensorMessage process(SensorMessage record, Context context) throws Exception;

    /**
     * 根据某种规则过滤数据
     *
     * @param record
     * @param context
     * @return
     * @throws Exception
     * @author admin
     * @since 2017年9月26日
     */
    boolean filter(SensorMessage record, Context context) throws Exception;

//    /** Builder implementations MUST have a no-arg constructor */
//    public interface Builder {
//      public Processor build();
//    }
//    


    Processor initialize();

    Processor destroy();

    /**
     * 预处理增加字段信息解析
     *
     * @param record
     * @author admin
     * @since 2018年7月30日
     */
    public abstract void postAction(SensorMessage record);

    /**
     * 前置处理器
     *
     * @param record
     * @author admin
     * @since 2018年7月30日
     */
    public abstract void preAction(SensorMessage record);

}